
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>测试用例报告标题</title>
    <meta name="generator" content="HTMLTestReport 0.0.1"/>
    <link rel="stylesheet" href="http://unpkg.com/layui@2.6.8/dist/css/layui.css">
    
<style type="text/css">
    .title { width: auto; height: 60px; text-align: center; font: bolder 38px/60px "Microsoft YaHei UI"; color: #009688; }
    .summary span { font: normal 16px/38px "Microsoft YaHei UI"; margin-left: 20px; }
    .success-btn { background-color: #28a745; }
    .skip-btn { background-color: #84898c; }
    .passClass  { background-color: #bdedbc; }
    .failClass  { background-color: #ffefa4; }
    .errorClass { background-color: #ffc9c9; }
    .passCase   { color: #5cb85c; }
    .skipCase   { color: #84898c; }
    .failCase   { color: #FF6600; font-weight: bold; }
    .errorCase  { color: #c00; font-weight: bold; }
    .hiddenRow  { display: none; }
    .testcase   { margin-left: 2em; }
    .layui-table tbody tr:hover, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table[lay-even] tr:nth-child(even) {
        background-color: transparent;
    }
</style>

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
    <script language="javascript" type="text/javascript"><!--
    output_list = Array();
    function showCase(level) {
        trs = document.getElementsByTagName("tr");
        for (var i = 0; i < trs.length; i++) {
            tr = trs[i];
            id = tr.id;
            if (id.substr(0,2) == 'ft') {
                if (level == 2 || level == 0) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
            if (id.substr(0,2) == 'pt') {
                if (level < 2) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
        }      
    }
    function showClassDetail(cid, count) {
        var id_list = Array(count);
        var toHide = 1;
        for (var i = 0; i < count; i++) {
            tid0 = 't' + cid.substr(1) + '.' + (i+1);
            tid = 'f' + tid0;
            tr = document.getElementById(tid);
            if (!tr) {
                tid = 'p' + tid0;
                tr = document.getElementById(tid);
            }
            id_list[i] = tid;
            if (tr.className) {
                toHide = 0;
            }
        }
        for (var i = 0; i < count; i++) {
            tid = id_list[i];
            if (toHide) {
                document.getElementById(tid).className = 'hiddenRow';
            }
            else {
                document.getElementById(tid).className = '';
            }
        }
    }
    function showTestDetail(div_id){
        var details_div = document.getElementById(div_id)
        var displayState = details_div.style.display
        if (displayState == 'block' || displayState == '' ) {
            details_div.style.display = 'none'
        }
        else {
            displayState = 'block'
            details_div.style.display = 'block'
        }
    }
    function html_escape(s) {
        s = s.replace(/&/g,'&amp;');
        s = s.replace(/</g,'&lt;');
        s = s.replace(/>/g,'&gt;');
        return s;
    }
    --></script>
    <div class="layui-container">
        
    <!--报告标题-->
    <div class="title">dubbo测试报告</div>
    
    <!--汇总信息-->
    <fieldset class="layui-elem-field summary">
        <legend>测试结果汇总</legend>
        <div class="layui-field-box">
            <table class="layui-table">
                <colgroup>
                    <col width="50%">
                    <col width="50%">
                </colgroup>
                <tbody>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">开始时间</button>
                            <span class="text-dark">2022-08-27 12:46:25</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">执行时间</button>
                            <span class="text-dark">0:00:00.720870 s</span>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">用例总数</button>
                            <span class="text-dark">16</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">通过率</button>
                            <span class="text-dark">87.50%</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <button type="button" class="layui-btn">描述信息</button>
                            <span class="text-dark">nihao</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <button type="button" class="layui-btn success-btn">成功用例：14</button>
                            <button type="button" class="layui-btn layui-btn-warm">失败用例：2</button>
                            <button type="button" class="layui-btn layui-btn-danger">错误用例：0</button>
                            <button type="button" class="layui-btn skip-btn">跳过用例：0</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </fieldset>
    
    <!--图表展示-->
    <fieldset class="layui-elem-field summary">
        <legend>图表展示</legend>
        <div class="layui-field-box">
            <div class="char">
                <div id="chart1" style="width: 49%;height: 400px;float: left"></div>
                <div id="chart2" style="width: 49%;height: 400px;float: left"></div>
            </div>
        </div>
    </fieldset>

        
    <fieldset class="layui-elem-field summary">
        <legend>详细信息</legend>
        <div class="layui-field-box">
            <table id='result_table' class="layui-table">
            <thead>
                <tr id='header_row' style='background-color: #009688; color: #fff'>
                    <th>测试用例</th>
                    <th>总数</th>
                    <th>通过</th>
                    <th>失败</th>
                    <th>错误</th>
                    <th>跳过</th>
                    <th>操作</th>
                </tr>
                </thead>
				<tbody>
                
    <tr class='passClass'>
        <td class="text-center">testcase_01.test_add</td>
        <td class="text-center">5</td>
        <td class="text-center">5</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c1',5)">详细</button></td>
    </tr>

<tr id='pt1.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_01_0_1000</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.1')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.1: new_args== {"id": "1000", "name": "\u675c\u752b", "phoneNumber": "18124241218", "class": "com.itheima.pojo.Member"}
command== invoke MemberService.add({"id": "1000", "name": "\u675c\u752b", "phoneNumber": "18124241218", "class": "com.itheima.pojo.Member"})

response_data== b'null\r\nelapsed: 5 ms.\r\ndubbo&gt;'
响应结果 = null
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_01_1_1000</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.2')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.2' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.2: new_args== {"id": "1000", "name": "\u675c\u8ddf\u752b", "phoneNumber": "18124241240", "class": "com.itheima.pojo.Member"}
command== invoke MemberService.add({"id": "1000", "name": "\u675c\u8ddf\u752b", "phoneNumber": "18124241240", "class": "com.itheima.pojo.Member"})

response_data== b'null\r\nelapsed: 5 ms.\r\ndubbo&gt;'
响应结果 = null
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_01_2_1000</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.3')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.3' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.3: new_args== {"id": "1000", "name": "\u675c\u4eba\u752b", "phoneNumber": "18124241241", "class": "com.itheima.pojo.Member"}
command== invoke MemberService.add({"id": "1000", "name": "\u675c\u4eba\u752b", "phoneNumber": "18124241241", "class": "com.itheima.pojo.Member"})

response_data== b'null\r\nelapsed: 4 ms.\r\ndubbo&gt;'
响应结果 = null
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_01_3_1001</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.4')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.4' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.4: new_args== {"id": "1001", "name": "\u675c\u752b\u7ed9", "phoneNumber": "18124241242", "class": "com.itheima.pojo.Member"}
command== invoke MemberService.add({"id": "1001", "name": "\u675c\u752b\u7ed9", "phoneNumber": "18124241242", "class": "com.itheima.pojo.Member"})

response_data== b'null\r\nelapsed: 4 ms.\r\ndubbo&gt;'
响应结果 = null
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_01_4_1002</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.5')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.5' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.5: new_args== {"id": "1002", "name": "\u675c\u7ed9\u752b", "phoneNumber": "18124241244", "class": "com.itheima.pojo.Member"}
command== invoke MemberService.add({"id": "1002", "name": "\u675c\u7ed9\u752b", "phoneNumber": "18124241244", "class": "com.itheima.pojo.Member"})

response_data== b'null\r\nelapsed: 4 ms.\r\ndubbo&gt;'
响应结果 = null
</pre>
        </blockquote>
    </div>
    </td>
</tr>

    <tr class='passClass'>
        <td class="text-center">testcase_01.test_check</td>
        <td class="text-center">5</td>
        <td class="text-center">5</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c2',5)">详细</button></td>
    </tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_02_0_18124241214</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.1')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.1: new_args== "18124241214"
command== invoke MemberService.findByTelephone("18124241214")

response_data== b'{"id":3399,"name":"\xe6\x9d\x9c\xe7\x94\xab","phoneNumber":"18124241214"}\r\nelapsed: 5 ms.\r\ndubbo&gt;'
响应结果 = {"id":3399,"name":"杜甫","phoneNumber":"18124241214"}
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt2.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_02_1_18124241216</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.2')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.2' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.2: new_args== "18124241216"
command== invoke MemberService.findByTelephone("18124241216")

response_data== b'{"id":3406,"name":"\xe6\x9d\x9c\xe7\x94\xab","phoneNumber":"18124241216"}\r\nelapsed: 6 ms.\r\ndubbo&gt;'
响应结果 = {"id":3406,"name":"杜甫","phoneNumber":"18124241216"}
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt2.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_02_2_18124241242</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.3')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.3' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.3: new_args== "18124241242"
command== invoke MemberService.findByTelephone("18124241242")

response_data== b'{"id":4503,"name":"\xe6\x9d\x9c\xe7\x94\xab\xe7\xbb\x99","phoneNumber":"18124241242"}\r\nelapsed: 6 ms.\r\ndubbo&gt;'
响应结果 = {"id":4503,"name":"杜甫给","phoneNumber":"18124241242"}
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt2.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_02_3_18124241240</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.4')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.4' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.4: new_args== "18124241240"
command== invoke MemberService.findByTelephone("18124241240")

response_data== b'{"id":4501,"name":"\xe6\x9d\x9c\xe8\xb7\x9f\xe7\x94\xab","phoneNumber":"18124241240"}\r\nelapsed: 6 ms.\r\ndubbo&gt;'
响应结果 = {"id":4501,"name":"杜跟甫","phoneNumber":"18124241240"}
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt2.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_02_4_18124241241</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt2.5')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt2.5' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt2.5: new_args== "18124241241"
command== invoke MemberService.findByTelephone("18124241241")

response_data== b'{"id":4502,"name":"\xe6\x9d\x9c\xe4\xba\xba\xe7\x94\xab","phoneNumber":"18124241241"}\r\nelapsed: 6 ms.\r\ndubbo&gt;'
响应结果 = {"id":4502,"name":"杜人甫","phoneNumber":"18124241241"}
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

    <tr class='failClass'>
        <td class="text-center">testcase_01.test_moths</td>
        <td class="text-center">6</td>
        <td class="text-center">4</td>
        <td class="text-center">2</td>
        <td class="text-center">0</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c3',6)">详细</button></td>
    </tr>

<tr id='pt3.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_03_0_2022_09</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt3.1')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt3.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt3.1: new_args== "2022.09"
command== invoke MemberService.findMemberCountByMonths("2022.09")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt3.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_03_1_2022_08</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt3.2')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt3.2' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt3.2: new_args== "2022.08"
command== invoke MemberService.findMemberCountByMonths("2022.08")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt3.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_03_2_2022_07</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt3.3')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt3.3' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt3.3: new_args== "2022.07"
command== invoke MemberService.findMemberCountByMonths("2022.07")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt3.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_03_3_2022_06</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt3.4')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt3.4' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt3.4: new_args== "2022.06"
command== invoke MemberService.findMemberCountByMonths("2022.06")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='ft3.5' class=''>
    <td class='failCase'><div class='testcase'>test_03_4_1900_06</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_ft3.5')">
        失败</a>
    </td>
    <td colspan='5'>
    <div id='div_ft3.5' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>ft3.5: new_args== "1900.06"
command== invoke MemberService.findMemberCountByMonths("1900.06")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
Traceback (most recent call last):
  File "D:\dubbo\venv\lib\site-packages\parameterized\parameterized.py", line 533, in standalone_func
    return func(*(a + p.args), **p.kwargs)
  File "D:\dubbo\testcase\testcase_01.py", line 25, in test_03
    self.assertEqual(expect,common.tools.months(m))
AssertionError: 'no' != 'yes'
- no
+ yes

</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='ft3.6' class=''>
    <td class='failCase'><div class='testcase'>test_03_5_1901_01</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_ft3.6')">
        失败</a>
    </td>
    <td colspan='5'>
    <div id='div_ft3.6' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>ft3.6: new_args== "1901.01"
command== invoke MemberService.findMemberCountByMonths("1901.01")

response_data== b'No such method findMemberCountByMonths in service MemberService\r\ndubbo&gt;'
yes
Traceback (most recent call last):
  File "D:\dubbo\venv\lib\site-packages\parameterized\parameterized.py", line 533, in standalone_func
    return func(*(a + p.args), **p.kwargs)
  File "D:\dubbo\testcase\testcase_01.py", line 25, in test_03
    self.assertEqual(expect,common.tools.months(m))
AssertionError: 'no' != 'yes'
- no
+ yes

</pre>
        </blockquote>
    </div>
    </td>
</tr>

                </tbody>
                <tr id='total_row' class="text-center active">
                    <td align="right">总计</td>
                    <td>16</td>
                    <td>14</td>
                    <td>2</td>
                    <td>0</td>
                    <td>0</td>
                    <td></td>
                </tr>
            </table>
        </div>
	</fieldset>

        <a href="#">
    <ul class="layui-fixbar"><li class="layui-icon layui-fixbar-top" lay-type="top" style="display: list-item;"></li></ul>
    </a>
    
        
    <script type="text/javascript">
        // 初始化echarts实例
        var myChart1 = echarts.init(document.getElementById('chart1'));
        var myChart2 = echarts.init(document.getElementById('chart2'));
        // 指定图表的配置项和数据
        option1 = {
            tooltip: {
                formatter: '{a} <br/>{b} : {c}%'
            },
            toolbox: {
                feature: {
                    restore: {},
                    saveAsImage: {}
                }
            },
            series: [{
                name: '测试结果',
                type: 'gauge',
                detail: {
                    formatter: '87.50%'
                },
                data: [{
                    value: '87.50',
                    name: '用例通过率'
                }],
                axisLine: {
                    lineStyle: {
                        color: [
                            [0.2, '#c20000'],
                            [0.8, '#ddb518'],
                            [1, '#00a10a']
                        ]
                    }
                }
            }]
        };
        option2 = {
            color: ['#00a10a', '#ddb518', 'rgba(204,46,41,0.73)', '#85898c'],
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>{b}: {c} ({d}%)'
            },
            legend: {
                orient: 'vertical',
                left: 10,
                data: ['通过', '失败', '错误', '跳过']
            },
            series: [{
                name: '测试结果',
                type: 'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: true,
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: [{
                        value: 14,
                        name: '通过'
                    },
                    {
                        value: 2,
                        name: '失败'
                    },
                    {
                        value: 0,
                        name: '错误'
                    },
                    {
                        value: 0,
                        name: '跳过'
                    }
                ]
            }]
        };

        myChart1.setOption(option1);
        myChart2.setOption(option2);
    </script>
    
    </div>
</body>
</html>
